﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.Collections.Generic;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category0
{
  public class MT021 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagSequenceDefinition U0002;
    private static SwiftTagSequenceDefinition U0003;
    private static SwiftTagDefinition U0004;
    private static SwiftTagSubItemDefinition U0005;
    private static SwiftTagDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagChoiceDefinition U0008;
    private static SwiftTagSequenceDefinition U000E;
    private static SwiftTagSequenceDefinition U000F;
    private static SwiftTagDefinition U0010;
    private static SwiftTagSubItemDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagSubItemDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagDefinition U0018;
    private static SwiftTagSubItemDefinition U0019;
    private static SwiftTagDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSequenceDefinition U001F;
    private static SwiftTagSequenceDefinition U007F;
    private static SwiftTagDefinition U0080;
    private static SwiftTagSubItemDefinition U0081;
    private static SwiftTagSubItemDefinition U0082;
    private static SwiftTagSubItemDefinition U0083;
    private static SwiftTagSubItemDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagChoiceDefinition U0087;
    private static SwiftTagDefinition U0088;
    private static SwiftTagSubItemDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagSubItemDefinition U008B;
    private static SwiftTagSubItemDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSubItemDefinition U0092;
    private static SwiftTagSubItemDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSubItemDefinition U0095;
    private static SwiftTagSubItemDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagDefinition U0099;
    private static SwiftTagSubItemDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagSubItemDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagSubItemDefinition U009E;
    private static SwiftTagSubItemDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;
    private static SwiftTagChoiceDefinition U0005U0002;
    private static SwiftTagDefinition U0006U0002;
    private static SwiftTagSubItemDefinition U0007U0002;
    private static SwiftTagSequenceDefinition U0008U0002;
    private static SwiftTagDefinition U000EU0002;
    private static SwiftTagSubItemDefinition U000FU0002;
    private static SwiftTagSequenceDefinition U0010U0002;
    private static SwiftTagSequenceDefinition U0011U0002;
    private static SwiftTagSequenceDefinition U0012U0002;
    private static SwiftTagDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagSequenceDefinition U0015U0002;
    private static SwiftTagDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagSubItemDefinition U0018U0002;
    private static SwiftTagSubItemDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagSubItemDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagSubItemDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagSubItemDefinition U0080U0002;
    private static SwiftTagSubItemDefinition U0081U0002;
    private static SwiftTagSubItemDefinition U0082U0002;
    private static SwiftTagSubItemDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagSubItemDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSubItemDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagSubItemDefinition U008AU0002;
    private static SwiftTagSubItemDefinition U008BU0002;
    private static SwiftTagDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;
    private static SwiftTagSubItemDefinition U008EU0002;
    private static SwiftTagSubItemDefinition U008FU0002;
    private static SwiftTagSequenceDefinition U0090U0002;
    private static SwiftTagChoiceDefinition U0091U0002;
    private static SwiftTagDefinition U0092U0002;
    private static SwiftTagSubItemDefinition U0093U0002;
    private static SwiftTagSubItemDefinition U0094U0002;
    private static SwiftTagSubItemDefinition U0095U0002;
    private static SwiftTagDefinition U0096U0002;
    private static SwiftTagSubItemDefinition U0097U0002;
    private static SwiftTagSubItemDefinition U0098U0002;
    private static SwiftTagSubItemDefinition U0099U0002;
    private static SwiftTagSequenceDefinition U009AU0002;
    private static SwiftTagDefinition U009BU0002;
    private static SwiftTagSubItemDefinition U009CU0002;
    private static SwiftTagSubItemDefinition U009DU0002;
    private static SwiftTagSubItemDefinition U009EU0002;
    private static SwiftTagSubItemDefinition U009FU0002;
    private static SwiftTagSubItemDefinition U0001U0003;
    private static SwiftTagSubItemDefinition U0002U0003;
    private static SwiftTagDefinition U0003U0003;
    private static SwiftTagSubItemDefinition U0004U0003;
    private static SwiftTagSequenceDefinition U0005U0003;
    private static SwiftTagDefinition U0006U0003;
    private static SwiftTagSubItemDefinition U0007U0003;
    private static SwiftTagSubItemDefinition U0008U0003;
    private static SwiftTagSubItemDefinition U000EU0003;
    private static SwiftTagSubItemDefinition U000FU0003;
    private static SwiftTagSubItemDefinition U0010U0003;
    private static SwiftTagSubItemDefinition U0011U0003;
    private static SwiftTagDefinition U0012U0003;
    private static SwiftTagSubItemDefinition U0013U0003;
    private static SwiftTagSequenceDefinition U0014U0003;
    private static SwiftTagDefinition U0015U0003;
    private static SwiftTagSubItemDefinition U0016U0003;
    private static SwiftTagSubItemDefinition U0017U0003;
    private static SwiftTagSubItemDefinition U0018U0003;
    private static SwiftTagSubItemDefinition U0019U0003;
    private static SwiftTagSubItemDefinition U001AU0003;
    private static SwiftTagDefinition U001BU0003;
    private static SwiftTagSubItemDefinition U001CU0003;
    private static SwiftTagSequenceDefinition U001DU0003;
    private static SwiftTagDefinition U001EU0003;
    private static SwiftTagSubItemDefinition U001FU0003;
    private static SwiftTagSubItemDefinition U007FU0003;
    private static SwiftTagSubItemDefinition U0080U0003;
    private static SwiftTagSubItemDefinition U0081U0003;
    private static SwiftTagSubItemDefinition U0082U0003;
    private static SwiftTagSubItemDefinition U0083U0003;
    private static SwiftTagDefinition U0084U0003;
    private static SwiftTagSubItemDefinition U0086U0003;
    private static SwiftTagSequenceDefinition U0087U0003;
    private static SwiftTagDefinition U0088U0003;
    private static SwiftTagSubItemDefinition U0089U0003;
    private static SwiftTagSubItemDefinition U008AU0003;
    private static SwiftTagSubItemDefinition U008BU0003;
    private static SwiftTagSubItemDefinition U008CU0003;
    private static SwiftTagSubItemDefinition U008DU0003;
    private static SwiftTagSubItemDefinition U008EU0003;
    private static SwiftTagDefinition U008FU0003;
    private static SwiftTagSubItemDefinition U0090U0003;
    private static SwiftTagSequenceDefinition U0091U0003;
    private static SwiftTagDefinition U0092U0003;
    private static SwiftTagSubItemDefinition U0093U0003;
    private static SwiftTagSubItemDefinition U0094U0003;
    private static SwiftTagSubItemDefinition U0095U0003;
    private static SwiftTagSubItemDefinition U0096U0003;
    private static SwiftTagSubItemDefinition U0097U0003;
    private static SwiftTagDefinition U0098U0003;
    private static SwiftTagSubItemDefinition U0099U0003;
    private static SwiftTagSequenceDefinition U009AU0003;
    private static SwiftTagDefinition U009BU0003;
    private static SwiftTagSubItemDefinition U009CU0003;
    private static SwiftTagDefinition U009DU0003;
    private static SwiftTagSubItemDefinition U009EU0003;
    private static SwiftTagSequenceDefinition U009FU0003;
    private static SwiftTagDefinition U0001U0004;
    private static SwiftTagSubItemDefinition U0002U0004;
    private static SwiftTagDefinition U0003U0004;
    private static SwiftTagSubItemDefinition U0004U0004;
    private static SwiftTagSequenceDefinition U0005U0004;
    private static SwiftTagDefinition U0006U0004;
    private static SwiftTagSubItemDefinition U0007U0004;

    [Description("Report Details")]
    public MT021.ReportDetailsSectionClass ReportDetailsSection
    {
      get
      {
        return new MT021.ReportDetailsSectionClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT021.InformationOnRetrievedMessages1Class InformationOnRetrievedMessages1
    {
      get
      {
        return new MT021.InformationOnRetrievedMessages1Class((SwiftElement) this, 0, false);
      }
    }

    [Description("Information on the Retrieved Messages")]
    public MT021.InformationOnRetrievedMessages2Class InformationOnRetrievedMessages2
    {
      get
      {
        return new MT021.InformationOnRetrievedMessages2Class((SwiftElement) this, 0, false);
      }
    }

    public MT021()
      : base(true)
    {
    }

    public MT021(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT021.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT021.MessageDefinition = new SwiftMessageDefinition("MT021", "Retrieved Message (Text and History)");
      MT021.U0002 = new SwiftTagSequenceDefinition("ReportDetailsSection", "Report Details");
      MT021.U0003 = new SwiftTagSequenceDefinition("ReportDetails", "");
      MT021.U0004 = new SwiftTagDefinition("SectionNumber_202", "Sequential section number");
      MT021.U0004.TagName = "{202:";
      MT021.U0005 = new SwiftTagSubItemDefinition("SectionNumber", "Sequential section number");
      MT021.U0004.Elements.Add((SwiftDefinitionElement) MT021.U0005);
      MT021.U0003.Elements.Add((SwiftDefinitionElement) MT021.U0004);
      MT021.U0006 = new SwiftTagDefinition("TotalSections_203", "Total number of sections in a multi-section message.");
      MT021.U0006.TagName = "{203:";
      MT021.U0007 = new SwiftTagSubItemDefinition("TotalSections", "Total Sections");
      MT021.U0006.Elements.Add((SwiftDefinitionElement) MT021.U0007);
      MT021.U0003.Elements.Add((SwiftDefinitionElement) MT021.U0006);
      MT021.U0002.Elements.Add((SwiftDefinitionElement) MT021.U0003);
      MT021.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT021.U0002);
      MT021.U0008 = new SwiftTagChoiceDefinition("Choice", "");
      MT021.U0008.Multiple = true;
      MT021.U000E = new SwiftTagSequenceDefinition("InformationOnRetrievedMessages1", "");
      MT021.U000F = new SwiftTagSequenceDefinition("InformationOnRetrievedMessages", "Information on the Retrieved Messages");
      MT021.U000F.Multiple = true;
      MT021.U0010 = new SwiftTagDefinition("InputHistory_280", "Message input history");
      MT021.U0010.TagName = "{280:";
      MT021.U0011 = new SwiftTagSubItemDefinition("Time", "Input time of message");
      MT021.U0010.Elements.Add((SwiftDefinitionElement) MT021.U0011);
      MT021.U0012 = new SwiftTagSubItemDefinition("MessageInputReference", "Message Input Reference");
      MT021.U0010.Elements.Add((SwiftDefinitionElement) MT021.U0012);
      MT021.U0013 = new SwiftTagSubItemDefinition("Acceptance", "Accepted or rejected");
      MT021.U0010.Elements.Add((SwiftDefinitionElement) MT021.U0013);
      MT021.U0014 = new SwiftTagSubItemDefinition("ErrorCode", "Error Code");
      MT021.U0014.Mandatory = false;
      MT021.U0010.Elements.Add((SwiftDefinitionElement) MT021.U0014);
      MT021.U0015 = new SwiftTagSubItemDefinition("LineTag", "line number (in banking message) or field number (in system message)");
      MT021.U0015.Mandatory = false;
      MT021.U0010.Elements.Add((SwiftDefinitionElement) MT021.U0015);
      MT021.U000F.Elements.Add((SwiftDefinitionElement) MT021.U0010);
      MT021.U0016 = new SwiftTagDefinition("MessageUserReference_108", "For FIN, the MUR assigned by the sender of a message");
      MT021.U0016.TagName = "{108:";
      MT021.U0016.Mandatory = false;
      MT021.U0017 = new SwiftTagSubItemDefinition("MessageUserReference", "Mur");
      MT021.U0016.Elements.Add((SwiftDefinitionElement) MT021.U0017);
      MT021.U000F.Elements.Add((SwiftDefinitionElement) MT021.U0016);
      MT021.U0018 = new SwiftTagDefinition("MessageStatus_431", "Message status");
      MT021.U0018.TagName = "{431:";
      MT021.U0018.Mandatory = false;
      MT021.U0019 = new SwiftTagSubItemDefinition("MessageStatus", "Message status");
      MT021.U0018.Elements.Add((SwiftDefinitionElement) MT021.U0019);
      MT021.U000F.Elements.Add((SwiftDefinitionElement) MT021.U0018);
      MT021.U001A = new SwiftTagDefinition("DeliveryHistory_281", "Message delivery history");
      MT021.U001A.TagName = "{281:";
      MT021.U001A.Mandatory = false;
      MT021.U001B = new SwiftTagSubItemDefinition("Time", "Output time of message");
      MT021.U001A.Elements.Add((SwiftDefinitionElement) MT021.U001B);
      MT021.U001C = new SwiftTagSubItemDefinition("MessageOutputReference", "Message Output Reference");
      MT021.U001A.Elements.Add((SwiftDefinitionElement) MT021.U001C);
      MT021.U001D = new SwiftTagSubItemDefinition("DeliveryResult", "Delivery Result Type");
      MT021.U001A.Elements.Add((SwiftDefinitionElement) MT021.U001D);
      MT021.U001E = new SwiftTagSubItemDefinition("ErrorCode", "Error Code");
      MT021.U001E.Mandatory = false;
      MT021.U001A.Elements.Add((SwiftDefinitionElement) MT021.U001E);
      MT021.U000F.Elements.Add((SwiftDefinitionElement) MT021.U001A);
      MT021.U000E.Elements.Add((SwiftDefinitionElement) MT021.U000F);
      MT021.U001F = new SwiftTagSequenceDefinition("RetrievedMessageText", "Retrieved Message Text");
      MT021.U007F = new SwiftTagSequenceDefinition("OriginalSWIFTHeader", "SWIFT Header");
      MT021.U0080 = new SwiftTagDefinition("BasicHeaderBlock", "Basic Header Block");
      MT021.U0080.TagName = "{1:";
      MT021.U0081 = new SwiftTagSubItemDefinition("ApplicationIdentifier", "");
      MT021.U0080.Elements.Add((SwiftDefinitionElement) MT021.U0081);
      MT021.U0082 = new SwiftTagSubItemDefinition("ServiceIdentifier", "");
      MT021.U0080.Elements.Add((SwiftDefinitionElement) MT021.U0082);
      MT021.U0083 = new SwiftTagSubItemDefinition("LTAddress", "");
      MT021.U0080.Elements.Add((SwiftDefinitionElement) MT021.U0083);
      MT021.U0084 = new SwiftTagSubItemDefinition("SessionNumber", "");
      MT021.U0084.Mandatory = false;
      MT021.U0080.Elements.Add((SwiftDefinitionElement) MT021.U0084);
      MT021.U0086 = new SwiftTagSubItemDefinition("SequenceNumber", "");
      MT021.U0086.Mandatory = false;
      MT021.U0080.Elements.Add((SwiftDefinitionElement) MT021.U0086);
      MT021.U007F.Elements.Add((SwiftDefinitionElement) MT021.U0080);
      MT021.U0087 = new SwiftTagChoiceDefinition("Choice", "");
      MT021.U0087.Mandatory = false;
      MT021.U0087.Multiple = true;
      MT021.U0088 = new SwiftTagDefinition("ApplicationHeaderBlock_Input", "Input Application Header Block");
      MT021.U0088.TagName = "{2:I";
      MT021.U0088.Mandatory = false;
      MT021.U0089 = new SwiftTagSubItemDefinition("MessageType", "");
      MT021.U0088.Elements.Add((SwiftDefinitionElement) MT021.U0089);
      MT021.U008A = new SwiftTagSubItemDefinition("DestinationAddress", "");
      MT021.U0088.Elements.Add((SwiftDefinitionElement) MT021.U008A);
      MT021.U008B = new SwiftTagSubItemDefinition("MessagePriority", "");
      MT021.U0088.Elements.Add((SwiftDefinitionElement) MT021.U008B);
      MT021.U008C = new SwiftTagSubItemDefinition("DeliveryMonitoring", "");
      MT021.U008C.Mandatory = false;
      MT021.U0088.Elements.Add((SwiftDefinitionElement) MT021.U008C);
      MT021.U008D = new SwiftTagSubItemDefinition("ObsolescencePeriod", "");
      MT021.U008D.Mandatory = false;
      MT021.U0088.Elements.Add((SwiftDefinitionElement) MT021.U008D);
      MT021.U0087.Elements.Add((SwiftDefinitionElement) MT021.U0088);
      MT021.U008E = new SwiftTagDefinition("ApplicationHeaderBlock_Output", "Output Application Header Block");
      MT021.U008E.TagName = "{2:O";
      MT021.U008E.Mandatory = false;
      MT021.U008F = new SwiftTagSubItemDefinition("MessageType", "");
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U008F);
      MT021.U0090 = new SwiftTagSubItemDefinition("InputTime", "");
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U0090);
      MT021.U0091 = new SwiftTagSubItemDefinition("MessageInputReference", "");
      MT021.U0092 = new SwiftTagSubItemDefinition("InputDate", "");
      MT021.U0091.Elements.Add((SwiftDefinitionElement) MT021.U0092);
      MT021.U0093 = new SwiftTagSubItemDefinition("LTAddress", "");
      MT021.U0091.Elements.Add((SwiftDefinitionElement) MT021.U0093);
      MT021.U0094 = new SwiftTagSubItemDefinition("SessionNumber", "");
      MT021.U0091.Elements.Add((SwiftDefinitionElement) MT021.U0094);
      MT021.U0095 = new SwiftTagSubItemDefinition("SequenceNumber", "");
      MT021.U0091.Elements.Add((SwiftDefinitionElement) MT021.U0095);
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U0091);
      MT021.U0096 = new SwiftTagSubItemDefinition("OutputDate", "");
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U0096);
      MT021.U0097 = new SwiftTagSubItemDefinition("OutputTime", "");
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U0097);
      MT021.U0098 = new SwiftTagSubItemDefinition("MessagePriority", "");
      MT021.U0098.Mandatory = false;
      MT021.U008E.Elements.Add((SwiftDefinitionElement) MT021.U0098);
      MT021.U0087.Elements.Add((SwiftDefinitionElement) MT021.U008E);
      MT021.U007F.Elements.Add((SwiftDefinitionElement) MT021.U0087);
      MT021.U0099 = new SwiftTagDefinition("UserHeaderBlock", "User Header Block");
      MT021.U0099.TagName = "{3:";
      MT021.U0099.Mandatory = false;
      MT021.U009A = new SwiftTagSubItemDefinition("FINServiceIdentifier_103", "FIN Service Identifier");
      MT021.U009A.Mandatory = false;
      MT021.U009B = new SwiftTagSubItemDefinition("ServiceIdentifier", "Service Identifier");
      MT021.U009A.Elements.Add((SwiftDefinitionElement) MT021.U009B);
      MT021.U0099.Elements.Add((SwiftDefinitionElement) MT021.U009A);
      MT021.U009C = new SwiftTagSubItemDefinition("BankingPriority_113", "Banking Priority");
      MT021.U009C.Mandatory = false;
      MT021.U009D = new SwiftTagSubItemDefinition("Priority", "Priority");
      MT021.U009C.Elements.Add((SwiftDefinitionElement) MT021.U009D);
      MT021.U0099.Elements.Add((SwiftDefinitionElement) MT021.U009C);
      MT021.U009E = new SwiftTagSubItemDefinition("MessageUserReference_108", "Message User Reference");
      MT021.U009E.Mandatory = false;
      MT021.U009F = new SwiftTagSubItemDefinition("Reference", "Reference");
      MT021.U009E.Elements.Add((SwiftDefinitionElement) MT021.U009F);
      MT021.U0099.Elements.Add((SwiftDefinitionElement) MT021.U009E);
      MT021.U0001U0002 = new SwiftTagSubItemDefinition("ValidationFlag_119", "Validation Flag");
      MT021.U0001U0002.Mandatory = false;
      MT021.U0002U0002 = new SwiftTagSubItemDefinition("Flag", "Flag");
      MT021.U0001U0002.Elements.Add((SwiftDefinitionElement) MT021.U0002U0002);
      MT021.U0099.Elements.Add((SwiftDefinitionElement) MT021.U0001U0002);
      MT021.U0003U0002 = new SwiftTagSubItemDefinition("AddresseeInformation_115", "Addressee Information");
      MT021.U0003U0002.Mandatory = false;
      MT021.U0004U0002 = new SwiftTagSubItemDefinition("Information", "Information");
      MT021.U0003U0002.Elements.Add((SwiftDefinitionElement) MT021.U0004U0002);
      MT021.U0099.Elements.Add((SwiftDefinitionElement) MT021.U0003U0002);
      MT021.U007F.Elements.Add((SwiftDefinitionElement) MT021.U0099);
      MT021.U001F.Elements.Add((SwiftDefinitionElement) MT021.U007F);
      MT021.U0005U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT021.U0005U0002.Multiple = true;
      MT021.U0006U0002 = new SwiftTagDefinition("BodyRetrievalErrorCode_421", "");
      MT021.U0006U0002.TagName = "{421:";
      MT021.U0006U0002.Mandatory = false;
      MT021.U0007U0002 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "");
      MT021.U0006U0002.Elements.Add((SwiftDefinitionElement) MT021.U0007U0002);
      MT021.U0005U0002.Elements.Add((SwiftDefinitionElement) MT021.U0006U0002);
      MT021.U0008U0002 = new SwiftTagSequenceDefinition("OriginalSwiftTextBlock", "OriginalSwiftTextBlock");
      MT021.U0008U0002.Mandatory = false;
      MT021.U000EU0002 = new SwiftTagDefinition("TextBlock", "");
      MT021.U000EU0002.TagName = "{4:";
      MT021.U000FU0002 = new SwiftTagSubItemDefinition("TextBlock_1", "");
      MT021.U000EU0002.Elements.Add((SwiftDefinitionElement) MT021.U000FU0002);
      MT021.U0008U0002.Elements.Add((SwiftDefinitionElement) MT021.U000EU0002);
      MT021.U0010U0002 = new SwiftTagSequenceDefinition("OriginalSWIFTBody", "");
      MT021.U0011U0002 = new SwiftTagSequenceDefinition("SwiftBody", "");
      MT021.U0012U0002 = new SwiftTagSequenceDefinition("Data", "");
      MT021.U0012U0002.Multiple = true;
      MT021.U0011U0002.Elements.Add((SwiftDefinitionElement) MT021.U0012U0002);
      MT021.U0010U0002.Elements.Add((SwiftDefinitionElement) MT021.U0011U0002);
      MT021.U0008U0002.Elements.Add((SwiftDefinitionElement) MT021.U0010U0002);
      MT021.U0013U0002 = new SwiftTagDefinition("EndTextBlock", "");
      MT021.U0013U0002.TagName = "-";
      MT021.U0014U0002 = new SwiftTagSubItemDefinition("EndTextBlock_1", "");
      MT021.U0014U0002.Mandatory = false;
      MT021.U0013U0002.Elements.Add((SwiftDefinitionElement) MT021.U0014U0002);
      MT021.U0008U0002.Elements.Add((SwiftDefinitionElement) MT021.U0013U0002);
      MT021.U0005U0002.Elements.Add((SwiftDefinitionElement) MT021.U0008U0002);
      MT021.U001F.Elements.Add((SwiftDefinitionElement) MT021.U0005U0002);
      MT021.U0015U0002 = new SwiftTagSequenceDefinition("OriginalSWIFTTrailer", "SWIFT Trailer");
      MT021.U0015U0002.Mandatory = false;
      MT021.U0016U0002 = new SwiftTagDefinition("AllTrailerBlocks", "All Trailer Blocks");
      MT021.U0016U0002.TagName = "{5:";
      MT021.U0016U0002.Mandatory = false;
      MT021.U0017U0002 = new SwiftTagSubItemDefinition("UserAndSystemTrailerBlocks", "User and System Trailer Blocks");
      MT021.U0017U0002.Mandatory = false;
      MT021.U0018U0002 = new SwiftTagSubItemDefinition("Checksum", "Checksum");
      MT021.U0018U0002.Mandatory = false;
      MT021.U0019U0002 = new SwiftTagSubItemDefinition("Checksum_1", "Checksum");
      MT021.U0018U0002.Elements.Add((SwiftDefinitionElement) MT021.U0019U0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U0018U0002);
      MT021.U001AU0002 = new SwiftTagSubItemDefinition("SystemOrientedMessage", "System Oriented Message");
      MT021.U001AU0002.Mandatory = false;
      MT021.U001BU0002 = new SwiftTagSubItemDefinition("TimeAndInputReference", "Time and Input Reference");
      MT021.U001BU0002.Mandatory = false;
      MT021.U001CU0002 = new SwiftTagSubItemDefinition("TimeAndInputReference_1", "Time and Input Reference");
      MT021.U001CU0002.Mandatory = false;
      MT021.U001BU0002.Elements.Add((SwiftDefinitionElement) MT021.U001CU0002);
      MT021.U001AU0002.Elements.Add((SwiftDefinitionElement) MT021.U001BU0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U001AU0002);
      MT021.U001DU0002 = new SwiftTagSubItemDefinition("Training", "Training");
      MT021.U001DU0002.Mandatory = false;
      MT021.U001EU0002 = new SwiftTagSubItemDefinition("Training_1", "Training");
      MT021.U001EU0002.Mandatory = false;
      MT021.U001DU0002.Elements.Add((SwiftDefinitionElement) MT021.U001EU0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U001DU0002);
      MT021.U001FU0002 = new SwiftTagSubItemDefinition("PossibleDuplicationEmission", "Possible Duplicate Emission");
      MT021.U001FU0002.Mandatory = false;
      MT021.U007FU0002 = new SwiftTagSubItemDefinition("TimeAndInputReference", "Time and Input Reference");
      MT021.U007FU0002.Mandatory = false;
      MT021.U0080U0002 = new SwiftTagSubItemDefinition("TimeAndInputReference_1", "Time and Input Reference");
      MT021.U0080U0002.Mandatory = false;
      MT021.U007FU0002.Elements.Add((SwiftDefinitionElement) MT021.U0080U0002);
      MT021.U001FU0002.Elements.Add((SwiftDefinitionElement) MT021.U007FU0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U001FU0002);
      MT021.U0081U0002 = new SwiftTagSubItemDefinition("DelayedMessage", "Delayed Message");
      MT021.U0082U0002 = new SwiftTagSubItemDefinition("DelayedMessage_1", "Delayed Message");
      MT021.U0082U0002.Mandatory = false;
      MT021.U0081U0002.Elements.Add((SwiftDefinitionElement) MT021.U0082U0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U0081U0002);
      MT021.U0083U0002 = new SwiftTagSubItemDefinition("PossibleDuplicateMessage", "Possible Duplicate Message");
      MT021.U0084U0002 = new SwiftTagSubItemDefinition("TimeAndOutputReference", "Time and Output Reference");
      MT021.U0084U0002.Mandatory = false;
      MT021.U0086U0002 = new SwiftTagSubItemDefinition("TimeAndOutputReference_1", "Time and Input Reference");
      MT021.U0086U0002.Mandatory = false;
      MT021.U0084U0002.Elements.Add((SwiftDefinitionElement) MT021.U0086U0002);
      MT021.U0083U0002.Elements.Add((SwiftDefinitionElement) MT021.U0084U0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U0083U0002);
      MT021.U0087U0002 = new SwiftTagSubItemDefinition("MessageReference", "Message Reference");
      MT021.U0088U0002 = new SwiftTagSubItemDefinition("DateTimeAndInputReference", "Date, Time and Input Reference");
      MT021.U0088U0002.Mandatory = false;
      MT021.U0089U0002 = new SwiftTagSubItemDefinition("DateTimeAndInputReference_1", "Date, Time and Input Reference");
      MT021.U0089U0002.Mandatory = false;
      MT021.U0088U0002.Elements.Add((SwiftDefinitionElement) MT021.U0089U0002);
      MT021.U0087U0002.Elements.Add((SwiftDefinitionElement) MT021.U0088U0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U0087U0002);
      MT021.U008AU0002 = new SwiftTagSubItemDefinition("RetrievalStatus", "Retrieval Status");
      MT021.U008BU0002 = new SwiftTagSubItemDefinition("RetrievalStatus_1", "Retrieval Status");
      MT021.U008BU0002.Mandatory = false;
      MT021.U008AU0002.Elements.Add((SwiftDefinitionElement) MT021.U008BU0002);
      MT021.U0017U0002.Elements.Add((SwiftDefinitionElement) MT021.U008AU0002);
      MT021.U0016U0002.Elements.Add((SwiftDefinitionElement) MT021.U0017U0002);
      MT021.U0015U0002.Elements.Add((SwiftDefinitionElement) MT021.U0016U0002);
      MT021.U008CU0002 = new SwiftTagDefinition("AllianceTrailerBlocks", "Trailers for SWIFT Alliance");
      MT021.U008CU0002.TagName = "{S:";
      MT021.U008CU0002.Mandatory = false;
      MT021.U008DU0002 = new SwiftTagSubItemDefinition("RepeatingTrailers", "Repeating Trailer Blocks");
      MT021.U008EU0002 = new SwiftTagSubItemDefinition("AllianceTrailerDataRecord", "SWIFT Alliance Trailer Record");
      MT021.U008FU0002 = new SwiftTagSubItemDefinition("AllianceTrailerData", "SWIFT Alliance Trailer Data");
      MT021.U008FU0002.Mandatory = false;
      MT021.U008EU0002.Elements.Add((SwiftDefinitionElement) MT021.U008FU0002);
      MT021.U008DU0002.Elements.Add((SwiftDefinitionElement) MT021.U008EU0002);
      MT021.U008CU0002.Elements.Add((SwiftDefinitionElement) MT021.U008DU0002);
      MT021.U0015U0002.Elements.Add((SwiftDefinitionElement) MT021.U008CU0002);
      MT021.U001F.Elements.Add((SwiftDefinitionElement) MT021.U0015U0002);
      MT021.U000E.Elements.Add((SwiftDefinitionElement) MT021.U001F);
      MT021.U0090U0002 = new SwiftTagSequenceDefinition("NextRetrievalCriteria", "Next Retrieval Criteria");
      MT021.U0090U0002.Mandatory = false;
      MT021.U0091U0002 = new SwiftTagChoiceDefinition("Choice", "");
      MT021.U0091U0002.Multiple = true;
      MT021.U0092U0002 = new SwiftTagDefinition("MessageInputReferenceRange_252", "Range of MIRs for retrieval");
      MT021.U0092U0002.TagName = "{252:";
      MT021.U0092U0002.Mandatory = false;
      MT021.U0093U0002 = new SwiftTagSubItemDefinition("MessageInputReferenceRange1", "Range of MIRs for retrieval");
      MT021.U0092U0002.Elements.Add((SwiftDefinitionElement) MT021.U0093U0002);
      MT021.U0094U0002 = new SwiftTagSubItemDefinition("MessageInputReferenceRange2", "Range of MIRs for retrieval");
      MT021.U0092U0002.Elements.Add((SwiftDefinitionElement) MT021.U0094U0002);
      MT021.U0095U0002 = new SwiftTagSubItemDefinition("TimeRange", "Time range");
      MT021.U0095U0002.Mandatory = false;
      MT021.U0092U0002.Elements.Add((SwiftDefinitionElement) MT021.U0095U0002);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0092U0002);
      MT021.U0096U0002 = new SwiftTagDefinition("MessageOutputReferenceRange_254", "Range of MORs for retrieval");
      MT021.U0096U0002.TagName = "{254:";
      MT021.U0096U0002.Mandatory = false;
      MT021.U0097U0002 = new SwiftTagSubItemDefinition("MessageOutputReferenceRange1", "Range of MORs for retrieval");
      MT021.U0096U0002.Elements.Add((SwiftDefinitionElement) MT021.U0097U0002);
      MT021.U0098U0002 = new SwiftTagSubItemDefinition("MessageOutputReferenceRange2", "Range of MORs for retrieval");
      MT021.U0096U0002.Elements.Add((SwiftDefinitionElement) MT021.U0098U0002);
      MT021.U0099U0002 = new SwiftTagSubItemDefinition("TimeRange", "Time range");
      MT021.U0099U0002.Mandatory = false;
      MT021.U0096U0002.Elements.Add((SwiftDefinitionElement) MT021.U0099U0002);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0096U0002);
      MT021.U009AU0002 = new SwiftTagSequenceDefinition("MessageInputType_Sequence", "");
      MT021.U009AU0002.Mandatory = false;
      MT021.U009BU0002 = new SwiftTagDefinition("MessageInputType_255", "Message input type");
      MT021.U009BU0002.TagName = "{255:";
      MT021.U009CU0002 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U009CU0002);
      MT021.U009DU0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U009DU0002);
      MT021.U009EU0002 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U009EU0002);
      MT021.U009FU0002 = new SwiftTagSubItemDefinition("MessageType", "Message Type");
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U009FU0002);
      MT021.U0001U0003 = new SwiftTagSubItemDefinition("Date", "Input date");
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U0001U0003);
      MT021.U0002U0003 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT021.U0002U0003.Mandatory = false;
      MT021.U009BU0002.Elements.Add((SwiftDefinitionElement) MT021.U0002U0003);
      MT021.U009AU0002.Elements.Add((SwiftDefinitionElement) MT021.U009BU0002);
      MT021.U0003U0003 = new SwiftTagDefinition("FirstISN_1_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT021.U0003U0003.TagName = "{152:";
      MT021.U0003U0003.Mandatory = false;
      MT021.U0004U0003 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT021.U0003U0003.Elements.Add((SwiftDefinitionElement) MT021.U0004U0003);
      MT021.U009AU0002.Elements.Add((SwiftDefinitionElement) MT021.U0003U0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U009AU0002);
      MT021.U0005U0003 = new SwiftTagSequenceDefinition("CategoryInputType_Sequence", "");
      MT021.U0005U0003.Mandatory = false;
      MT021.U0006U0003 = new SwiftTagDefinition("CategoryInputType_256", "Category input type");
      MT021.U0006U0003.TagName = "{256:";
      MT021.U0007U0003 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U0007U0003);
      MT021.U0008U0003 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U0008U0003);
      MT021.U000EU0003 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U000EU0003);
      MT021.U000FU0003 = new SwiftTagSubItemDefinition("MessageCategory", "Message category");
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U000FU0003);
      MT021.U0010U0003 = new SwiftTagSubItemDefinition("Date", "Input date");
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U0010U0003);
      MT021.U0011U0003 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT021.U0011U0003.Mandatory = false;
      MT021.U0006U0003.Elements.Add((SwiftDefinitionElement) MT021.U0011U0003);
      MT021.U0005U0003.Elements.Add((SwiftDefinitionElement) MT021.U0006U0003);
      MT021.U0012U0003 = new SwiftTagDefinition("FirstISN_2_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT021.U0012U0003.TagName = "{152:";
      MT021.U0012U0003.Mandatory = false;
      MT021.U0013U0003 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT021.U0012U0003.Elements.Add((SwiftDefinitionElement) MT021.U0013U0003);
      MT021.U0005U0003.Elements.Add((SwiftDefinitionElement) MT021.U0012U0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0005U0003);
      MT021.U0014U0003 = new SwiftTagSequenceDefinition("InputTimeRange_Sequence", "");
      MT021.U0014U0003.Mandatory = false;
      MT021.U0015U0003 = new SwiftTagDefinition("InputTimeRange_257", "Input time range");
      MT021.U0015U0003.TagName = "{257:";
      MT021.U0016U0003 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U0015U0003.Elements.Add((SwiftDefinitionElement) MT021.U0016U0003);
      MT021.U0017U0003 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U0015U0003.Elements.Add((SwiftDefinitionElement) MT021.U0017U0003);
      MT021.U0018U0003 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT021.U0015U0003.Elements.Add((SwiftDefinitionElement) MT021.U0018U0003);
      MT021.U0019U0003 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT021.U0015U0003.Elements.Add((SwiftDefinitionElement) MT021.U0019U0003);
      MT021.U001AU0003 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U001AU0003.Mandatory = false;
      MT021.U0015U0003.Elements.Add((SwiftDefinitionElement) MT021.U001AU0003);
      MT021.U0014U0003.Elements.Add((SwiftDefinitionElement) MT021.U0015U0003);
      MT021.U001BU0003 = new SwiftTagDefinition("FirstISN_3_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT021.U001BU0003.TagName = "{152:";
      MT021.U001BU0003.Mandatory = false;
      MT021.U001CU0003 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT021.U001BU0003.Elements.Add((SwiftDefinitionElement) MT021.U001CU0003);
      MT021.U0014U0003.Elements.Add((SwiftDefinitionElement) MT021.U001BU0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0014U0003);
      MT021.U001DU0003 = new SwiftTagSequenceDefinition("MessageOutputType_Sequence", "");
      MT021.U001DU0003.Mandatory = false;
      MT021.U001EU0003 = new SwiftTagDefinition("MessageOutputType_258", "Message output type");
      MT021.U001EU0003.TagName = "{258:";
      MT021.U001FU0003 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U001FU0003);
      MT021.U007FU0003 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U007FU0003);
      MT021.U0080U0003 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U0080U0003);
      MT021.U0081U0003 = new SwiftTagSubItemDefinition("MessageType", "Message Type");
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U0081U0003);
      MT021.U0082U0003 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U0082U0003);
      MT021.U0083U0003 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT021.U0083U0003.Mandatory = false;
      MT021.U001EU0003.Elements.Add((SwiftDefinitionElement) MT021.U0083U0003);
      MT021.U001DU0003.Elements.Add((SwiftDefinitionElement) MT021.U001EU0003);
      MT021.U0084U0003 = new SwiftTagDefinition("FirstOSN_1_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT021.U0084U0003.TagName = "{153:";
      MT021.U0084U0003.Mandatory = false;
      MT021.U0086U0003 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT021.U0084U0003.Elements.Add((SwiftDefinitionElement) MT021.U0086U0003);
      MT021.U001DU0003.Elements.Add((SwiftDefinitionElement) MT021.U0084U0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U001DU0003);
      MT021.U0087U0003 = new SwiftTagSequenceDefinition("CategoryOutputType_Sequence", "");
      MT021.U0087U0003.Mandatory = false;
      MT021.U0088U0003 = new SwiftTagDefinition("CategoryOutputType_259", "Category output type");
      MT021.U0088U0003.TagName = "{259:";
      MT021.U0089U0003 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U0089U0003);
      MT021.U008AU0003 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U008AU0003);
      MT021.U008BU0003 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U008BU0003);
      MT021.U008CU0003 = new SwiftTagSubItemDefinition("MessageCategory", "Message Category");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U008CU0003);
      MT021.U008DU0003 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U008DU0003);
      MT021.U008EU0003 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT021.U0088U0003.Elements.Add((SwiftDefinitionElement) MT021.U008EU0003);
      MT021.U0087U0003.Elements.Add((SwiftDefinitionElement) MT021.U0088U0003);
      MT021.U008FU0003 = new SwiftTagDefinition("FirstOSN_2_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT021.U008FU0003.TagName = "{153:";
      MT021.U008FU0003.Mandatory = false;
      MT021.U0090U0003 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT021.U008FU0003.Elements.Add((SwiftDefinitionElement) MT021.U0090U0003);
      MT021.U0087U0003.Elements.Add((SwiftDefinitionElement) MT021.U008FU0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0087U0003);
      MT021.U0091U0003 = new SwiftTagSequenceDefinition("OutputTimeRange_Sequence", "");
      MT021.U0091U0003.Mandatory = false;
      MT021.U0092U0003 = new SwiftTagDefinition("OutputTimeRange_260", "Output Time Range");
      MT021.U0092U0003.TagName = "{260:";
      MT021.U0093U0003 = new SwiftTagSubItemDefinition("LTIdentifier", "LT Identifier");
      MT021.U0092U0003.Elements.Add((SwiftDefinitionElement) MT021.U0093U0003);
      MT021.U0094U0003 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT021.U0092U0003.Elements.Add((SwiftDefinitionElement) MT021.U0094U0003);
      MT021.U0095U0003 = new SwiftTagSubItemDefinition("Date", "Output date");
      MT021.U0092U0003.Elements.Add((SwiftDefinitionElement) MT021.U0095U0003);
      MT021.U0096U0003 = new SwiftTagSubItemDefinition("TimeRange", "Output time range");
      MT021.U0092U0003.Elements.Add((SwiftDefinitionElement) MT021.U0096U0003);
      MT021.U0097U0003 = new SwiftTagSubItemDefinition("SessionNumber", "Session Number");
      MT021.U0097U0003.Mandatory = false;
      MT021.U0092U0003.Elements.Add((SwiftDefinitionElement) MT021.U0097U0003);
      MT021.U0091U0003.Elements.Add((SwiftDefinitionElement) MT021.U0092U0003);
      MT021.U0098U0003 = new SwiftTagDefinition("FirstOSN_3_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT021.U0098U0003.TagName = "{153:";
      MT021.U0098U0003.Mandatory = false;
      MT021.U0099U0003 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT021.U0098U0003.Elements.Add((SwiftDefinitionElement) MT021.U0099U0003);
      MT021.U0091U0003.Elements.Add((SwiftDefinitionElement) MT021.U0098U0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U0091U0003);
      MT021.U009AU0003 = new SwiftTagSequenceDefinition("RetrievalErrorCode_1_Sequence", "");
      MT021.U009AU0003.Mandatory = false;
      MT021.U009BU0003 = new SwiftTagDefinition("RetrievalErrorCode_1_421", "Reason why the retrieval request cannot be satisfied");
      MT021.U009BU0003.TagName = "{421:";
      MT021.U009CU0003 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT021.U009BU0003.Elements.Add((SwiftDefinitionElement) MT021.U009CU0003);
      MT021.U009AU0003.Elements.Add((SwiftDefinitionElement) MT021.U009BU0003);
      MT021.U009DU0003 = new SwiftTagDefinition("FirstISN_4_152", "First ISN to be retrieved in a multiple input message retrieval.");
      MT021.U009DU0003.TagName = "{152:";
      MT021.U009DU0003.Mandatory = false;
      MT021.U009EU0003 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT021.U009DU0003.Elements.Add((SwiftDefinitionElement) MT021.U009EU0003);
      MT021.U009AU0003.Elements.Add((SwiftDefinitionElement) MT021.U009DU0003);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U009AU0003);
      MT021.U009FU0003 = new SwiftTagSequenceDefinition("RetrievalErrorCode_2_Sequence", "");
      MT021.U009FU0003.Mandatory = false;
      MT021.U0001U0004 = new SwiftTagDefinition("RetrievalErrorCode_2_421", "Reason why the retrieval request cannot be satisfied");
      MT021.U0001U0004.TagName = "{421:";
      MT021.U0002U0004 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT021.U0001U0004.Elements.Add((SwiftDefinitionElement) MT021.U0002U0004);
      MT021.U009FU0003.Elements.Add((SwiftDefinitionElement) MT021.U0001U0004);
      MT021.U0003U0004 = new SwiftTagDefinition("FirstOSN_4_153", "First OSN to be retrieved in a multiple output message retrieval");
      MT021.U0003U0004.TagName = "{153:";
      MT021.U0003U0004.Mandatory = false;
      MT021.U0004U0004 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT021.U0003U0004.Elements.Add((SwiftDefinitionElement) MT021.U0004U0004);
      MT021.U009FU0003.Elements.Add((SwiftDefinitionElement) MT021.U0003U0004);
      MT021.U0091U0002.Elements.Add((SwiftDefinitionElement) MT021.U009FU0003);
      MT021.U0090U0002.Elements.Add((SwiftDefinitionElement) MT021.U0091U0002);
      MT021.U000E.Elements.Add((SwiftDefinitionElement) MT021.U0090U0002);
      MT021.U0008.Elements.Add((SwiftDefinitionElement) MT021.U000E);
      MT021.U0005U0004 = new SwiftTagSequenceDefinition("InformationOnRetrievedMessages2", "Information on the Retrieved Messages");
      MT021.U0006U0004 = new SwiftTagDefinition("RetrievalErrorCode_421", "Reason why the retrieval request cannot be satisfied");
      MT021.U0006U0004.TagName = "{421:";
      MT021.U0007U0004 = new SwiftTagSubItemDefinition("RetrievalErrorCode", "Retrieval Error Code");
      MT021.U0006U0004.Elements.Add((SwiftDefinitionElement) MT021.U0007U0004);
      MT021.U0005U0004.Elements.Add((SwiftDefinitionElement) MT021.U0006U0004);
      MT021.U0008.Elements.Add((SwiftDefinitionElement) MT021.U0005U0004);
      MT021.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT021.U0008);
    }

    public class ReportDetailsSectionClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT021.U0002;
        }
      }

      [Description("")]
      public MT021.ReportDetailsSectionClass.ReportDetailsClass ReportDetails
      {
        get
        {
          return new MT021.ReportDetailsSectionClass.ReportDetailsClass((SwiftElement) this, 0, false);
        }
      }

      internal ReportDetailsSectionClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public class ReportDetailsClass : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT021.U0003;
          }
        }

        [Description("Sequential section number")]
        public Tag202 SectionNumber_202
        {
          get
          {
            return new Tag202((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0004);
          }
        }

        [Description("Sequential section number")]
        public Tag202 Tag202_SectionNumber
        {
          get
          {
            return this.SectionNumber_202;
          }
        }

        [Description("Total number of sections in a multi-section message.")]
        public Tag203 TotalSections_203
        {
          get
          {
            return new Tag203((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0006);
          }
        }

        [Description("Total number of sections in a multi-section message.")]
        public Tag203 Tag203_TotalSections
        {
          get
          {
            return this.TotalSections_203;
          }
        }

        internal ReportDetailsClass(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }
    }

    public class InformationOnRetrievedMessages1Class : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT021.U000E;
        }
      }

      [Description("Information on the Retrieved Messages")]
      public MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass[] InformationOnRetrievedMessages
      {
        get
        {
          int index = -1;
          List<MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass> list = new List<MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass>();
          int count;
          do
          {
            ++index;
            MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass retrievedMessagesClass = new MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass((SwiftElement) this, index, false);
            count = this.ListTags((SwiftElement)retrievedMessagesClass).Count;
            if (count > 0)
              list.Add(retrievedMessagesClass);
          }
          while (count > 0);
          return list.ToArray();
        }
      }

      [Description("Retrieved Message Text")]
      public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass RetrievedMessageText
      {
        get
        {
          return new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass((SwiftElement) this, 0, false);
        }
      }

      [Description("Next Retrieval Criteria")]
      public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass NextRetrievalCriteria
      {
        get
        {
          MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass retrievalCriteriaClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass((SwiftElement) this, 0, false);
          if (this.ListTags((SwiftElement) retrievalCriteriaClass).Count > 0)
            return retrievalCriteriaClass;
          else
            return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass) null;
        }
      }

      internal InformationOnRetrievedMessages1Class(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass AddInformationOnRetrievedMessages()
      {
        return new MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass((SwiftElement) this, this.InformationOnRetrievedMessages.Length, true);
      }

      public void RemoveInformationOnRetrievedMessages(MT021.InformationOnRetrievedMessages1Class.InformationOnRetrievedMessagesClass sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass AddNextRetrievalCriteria()
      {
        return this.NextRetrievalCriteria ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass((SwiftElement) this, 0, true);
      }

      public void RemoveNextRetrievalCriteria(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass sequence)
      {
        foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
          this.RemoveTag(tag);
      }

      public class InformationOnRetrievedMessagesClass : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT021.U000F;
          }
        }

        [Description("Message input history")]
        public Tag280 InputHistory_280
        {
          get
          {
            return new Tag280((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0010);
          }
        }

        [Description("Message input history")]
        public Tag280 Tag280_InputHistory
        {
          get
          {
            return this.InputHistory_280;
          }
        }

        [Description("For FIN, the MUR assigned by the sender of a message")]
        public Tag108 MessageUserReference_108
        {
          get
          {
            return new Tag108((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0016);
          }
        }

        [Description("For FIN, the MUR assigned by the sender of a message")]
        public Tag108 Tag108_MessageUserReference
        {
          get
          {
            return this.MessageUserReference_108;
          }
        }

        [Description("Message status")]
        public Tag431 MessageStatus_431
        {
          get
          {
            return new Tag431((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0018);
          }
        }

        [Description("Message status")]
        public Tag431 Tag431_MessageStatus
        {
          get
          {
            return this.MessageStatus_431;
          }
        }

        [Description("Message delivery history")]
        public Tag281 DeliveryHistory_281
        {
          get
          {
            return new Tag281((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U001A);
          }
        }

        [Description("Message delivery history")]
        public Tag281 Tag281_DeliveryHistory
        {
          get
          {
            return this.DeliveryHistory_281;
          }
        }

        internal InformationOnRetrievedMessagesClass(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }
      }

      public class RetrievedMessageTextClass : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT021.U001F;
          }
        }

        [Description("SWIFT Header")]
        public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTHeaderClass OriginalSWIFTHeader
        {
          get
          {
            return new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTHeaderClass((SwiftElement) this, 0, false);
          }
        }

        [Description("")]
        public Tag421 BodyRetrievalErrorCode_421
        {
          get
          {
            return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0006U0002);
          }
        }

        [Description("")]
        public Tag421 Tag421_BodyRetrievalErrorCode
        {
          get
          {
            return this.BodyRetrievalErrorCode_421;
          }
        }

        [Description("OriginalSwiftTextBlock")]
        public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass OriginalSwiftTextBlock
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass swiftTextBlockClass = new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) swiftTextBlockClass).Count > 0)
              return swiftTextBlockClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass) null;
          }
        }

        [Description("SWIFT Trailer")]
        public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass OriginalSWIFTTrailer
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass swiftTrailerClass = new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) swiftTrailerClass).Count > 0)
              return swiftTrailerClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass) null;
          }
        }

        internal RetrievedMessageTextClass(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass AddOriginalSwiftTextBlock()
        {
          return this.OriginalSwiftTextBlock ?? new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass((SwiftElement) this, 0, true);
        }

        public void RemoveOriginalSwiftTextBlock(MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass AddOriginalSWIFTTrailer()
        {
          return this.OriginalSWIFTTrailer ?? new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass((SwiftElement) this, 0, true);
        }

        public void RemoveOriginalSWIFTTrailer(MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSWIFTTrailerClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public class OriginalSWIFTHeaderClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U007F;
            }
          }

          [Description("Basic Header Block")]
          public TagBasicHeaderBlock BasicHeaderBlock
          {
            get
            {
              return new TagBasicHeaderBlock((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0080);
            }
          }

          [Description("Input Application Header Block")]
          public TagInput ApplicationHeaderBlock_Input
          {
            get
            {
              return new TagInput((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0088);
            }
          }

          [Description("Input Application Header Block")]
          public TagInput TagInput_ApplicationHeaderBlock
          {
            get
            {
              return this.ApplicationHeaderBlock_Input;
            }
          }

          [Description("Output Application Header Block")]
          public TagOutput ApplicationHeaderBlock_Output
          {
            get
            {
              return new TagOutput((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U008E);
            }
          }

          [Description("Output Application Header Block")]
          public TagOutput TagOutput_ApplicationHeaderBlock
          {
            get
            {
              return this.ApplicationHeaderBlock_Output;
            }
          }

          [Description("User Header Block")]
          public TagUserHeaderBlock UserHeaderBlock
          {
            get
            {
              return new TagUserHeaderBlock((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0099);
            }
          }

          internal OriginalSWIFTHeaderClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class OriginalSwiftTextBlockClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0008U0002;
            }
          }

          [Description("")]
          public TagTextBlock TextBlock
          {
            get
            {
              return new TagTextBlock((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U000EU0002);
            }
          }

          [Description("")]
          public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass OriginalSWIFTBody
          {
            get
            {
              return new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass((SwiftElement) this, 0, false);
            }
          }

          [Description("")]
          public TagEndTextBlock EndTextBlock
          {
            get
            {
              return new TagEndTextBlock((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0013U0002);
            }
          }

          internal OriginalSwiftTextBlockClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }

          public class OriginalSWIFTBodyClass : SwiftTagSequence
          {
            internal override SwiftDefinitionElement Definition
            {
              get
              {
                return (SwiftDefinitionElement) MT021.U0010U0002;
              }
            }

            [Description("")]
            public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass SwiftBody
            {
              get
              {
                return new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass((SwiftElement) this, 0, false);
              }
            }

            internal OriginalSWIFTBodyClass(SwiftElement parent, int index, bool createTags)
              : base(parent, index, createTags)
            {
            }

            public class SwiftBodyClass : SwiftTagSequence
            {
              internal override SwiftDefinitionElement Definition
              {
                get
                {
                  return (SwiftDefinitionElement) MT021.U0011U0002;
                }
              }

              [Description("")]
              public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass[] Data
              {
                get
                {
                  int index = -1;
                  List<MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass> list = new List<MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass>();
                  int count;
                  do
                  {
                    ++index;
                    MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass dataClass = new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass((SwiftElement) this, index, false);
                    count = this.ListTags((SwiftElement) dataClass).Count;
                    if (count > 0)
                      list.Add(dataClass);
                  }
                  while (count > 0);
                  return list.ToArray();
                }
              }

              internal SwiftBodyClass(SwiftElement parent, int index, bool createTags)
                : base(parent, index, createTags)
              {
              }

              public MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass AddData()
              {
                return new MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass((SwiftElement) this, this.Data.Length, true);
              }

              public void RemoveData(MT021.InformationOnRetrievedMessages1Class.RetrievedMessageTextClass.OriginalSwiftTextBlockClass.OriginalSWIFTBodyClass.SwiftBodyClass.DataClass sequence)
              {
                foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
                  this.RemoveTag(tag);
              }

              public class DataClass : SwiftTagSequence
              {
                internal override SwiftDefinitionElement Definition
                {
                  get
                  {
                    return (SwiftDefinitionElement) MT021.U0012U0002;
                  }
                }

                internal DataClass(SwiftElement parent, int index, bool createTags)
                  : base(parent, index, createTags)
                {
                }
              }
            }
          }
        }

        public class OriginalSWIFTTrailerClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0015U0002;
            }
          }

          [Description("All Trailer Blocks")]
          public TagAllTrailerBlocks AllTrailerBlocks
          {
            get
            {
              return new TagAllTrailerBlocks((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0016U0002);
            }
          }

          [Description("Trailers for SWIFT Alliance")]
          public TagAllianceTrailerBlocks AllianceTrailerBlocks
          {
            get
            {
              return new TagAllianceTrailerBlocks((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U008CU0002);
            }
          }

          internal OriginalSWIFTTrailerClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }
      }

      public class NextRetrievalCriteriaClass : SwiftTagSequence
      {
        internal override SwiftDefinitionElement Definition
        {
          get
          {
            return (SwiftDefinitionElement) MT021.U0090U0002;
          }
        }

        [Description("Range of MIRs for retrieval")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252 MessageInputReferenceRange_252
        {
          get
          {
            return new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0092U0002);
          }
        }

        [Description("Range of MIRs for retrieval")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag252 Tag252_MessageInputReferenceRange
        {
          get
          {
            return this.MessageInputReferenceRange_252;
          }
        }

        [Description("Range of MORs for retrieval")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254 MessageOutputReferenceRange_254
        {
          get
          {
            return new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0096U0002);
          }
        }

        [Description("Range of MORs for retrieval")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.Tag254 Tag254_MessageOutputReferenceRange
        {
          get
          {
            return this.MessageOutputReferenceRange_254;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass MessageInputType_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass typeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) typeSequenceClass).Count > 0)
              return typeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass CategoryInputType_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass typeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) typeSequenceClass).Count > 0)
              return typeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass InputTimeRange_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass rangeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) rangeSequenceClass).Count > 0)
              return rangeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass MessageOutputType_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass typeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) typeSequenceClass).Count > 0)
              return typeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass CategoryOutputType_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass typeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) typeSequenceClass).Count > 0)
              return typeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass OutputTimeRange_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass rangeSequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) rangeSequenceClass).Count > 0)
              return rangeSequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass RetrievalErrorCode_1_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass code1SequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) code1SequenceClass).Count > 0)
              return code1SequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass) null;
          }
        }

        [Description("")]
        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass RetrievalErrorCode_2_Sequence
        {
          get
          {
            MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass code2SequenceClass = new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass((SwiftElement) this, 0, false);
            if (this.ListTags((SwiftElement) code2SequenceClass).Count > 0)
              return code2SequenceClass;
            else
              return (MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass) null;
          }
        }

        internal NextRetrievalCriteriaClass(SwiftElement parent, int index, bool createTags)
          : base(parent, index, createTags)
        {
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass AddMessageInputType_Sequence()
        {
          return this.MessageInputType_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveMessageInputType_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageInputType_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass AddCategoryInputType_Sequence()
        {
          return this.CategoryInputType_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveCategoryInputType_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryInputType_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass AddInputTimeRange_Sequence()
        {
          return this.InputTimeRange_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveInputTimeRange_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.InputTimeRange_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass AddMessageOutputType_Sequence()
        {
          return this.MessageOutputType_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveMessageOutputType_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.MessageOutputType_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass AddCategoryOutputType_Sequence()
        {
          return this.CategoryOutputType_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveCategoryOutputType_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.CategoryOutputType_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass AddOutputTimeRange_Sequence()
        {
          return this.OutputTimeRange_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveOutputTimeRange_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.OutputTimeRange_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass AddRetrievalErrorCode_1_Sequence()
        {
          return this.RetrievalErrorCode_1_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveRetrievalErrorCode_1_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_1_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass AddRetrievalErrorCode_2_Sequence()
        {
          return this.RetrievalErrorCode_2_Sequence ?? new MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass((SwiftElement) this, 0, true);
        }

        public void RemoveRetrievalErrorCode_2_Sequence(MT021.InformationOnRetrievedMessages1Class.NextRetrievalCriteriaClass.RetrievalErrorCode_2_SequenceClass sequence)
        {
          foreach (SwiftTag tag in this.ListTags((SwiftElement) sequence))
            this.RemoveTag(tag);
        }

        public class Tag252 : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("252", value);
            }
          }

          internal Tag252(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }

        public class Tag254 : SwiftTagWrapper
        {
          public string Value
          {
            get
            {
              return this.GetValue();
            }
            set
            {
              this.SetValue("254", value);
            }
          }

          internal Tag254(SwiftElement parent, int index, SwiftDefinitionElement definition)
            : base(parent, index, definition)
          {
          }
        }

        public class MessageInputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U009AU0002;
            }
          }

          [Description("Message input type")]
          public Tag255 MessageInputType_255
          {
            get
            {
              return new Tag255((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U009BU0002);
            }
          }

          [Description("Message input type")]
          public Tag255 Tag255_MessageInputType
          {
            get
            {
              return this.MessageInputType_255;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_1_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0003U0003);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_1
          {
            get
            {
              return this.FirstISN_1_152;
            }
          }

          internal MessageInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class CategoryInputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0005U0003;
            }
          }

          [Description("Category input type")]
          public Tag256 CategoryInputType_256
          {
            get
            {
              return new Tag256((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0006U0003);
            }
          }

          [Description("Category input type")]
          public Tag256 Tag256_CategoryInputType
          {
            get
            {
              return this.CategoryInputType_256;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_2_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0012U0003);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_2
          {
            get
            {
              return this.FirstISN_2_152;
            }
          }

          internal CategoryInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class InputTimeRange_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0014U0003;
            }
          }

          [Description("Input time range")]
          public Tag257 InputTimeRange_257
          {
            get
            {
              return new Tag257((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0015U0003);
            }
          }

          [Description("Input time range")]
          public Tag257 Tag257_InputTimeRange
          {
            get
            {
              return this.InputTimeRange_257;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_3_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U001BU0003);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_3
          {
            get
            {
              return this.FirstISN_3_152;
            }
          }

          internal InputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class MessageOutputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U001DU0003;
            }
          }

          [Description("Message output type")]
          public Tag258 MessageOutputType_258
          {
            get
            {
              return new Tag258((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U001EU0003);
            }
          }

          [Description("Message output type")]
          public Tag258 Tag258_MessageOutputType
          {
            get
            {
              return this.MessageOutputType_258;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_1_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0084U0003);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_1
          {
            get
            {
              return this.FirstOSN_1_153;
            }
          }

          internal MessageOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class CategoryOutputType_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0087U0003;
            }
          }

          [Description("Category output type")]
          public Tag259 CategoryOutputType_259
          {
            get
            {
              return new Tag259((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0088U0003);
            }
          }

          [Description("Category output type")]
          public Tag259 Tag259_CategoryOutputType
          {
            get
            {
              return this.CategoryOutputType_259;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_2_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U008FU0003);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_2
          {
            get
            {
              return this.FirstOSN_2_153;
            }
          }

          internal CategoryOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class OutputTimeRange_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U0091U0003;
            }
          }

          [Description("Output Time Range")]
          public Tag260 OutputTimeRange_260
          {
            get
            {
              return new Tag260((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0092U0003);
            }
          }

          [Description("Output Time Range")]
          public Tag260 Tag260_OutputTimeRange
          {
            get
            {
              return this.OutputTimeRange_260;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_3_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0098U0003);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_3
          {
            get
            {
              return this.FirstOSN_3_153;
            }
          }

          internal OutputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class RetrievalErrorCode_1_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U009AU0003;
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 RetrievalErrorCode_1_421
          {
            get
            {
              return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U009BU0003);
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 Tag421_RetrievalErrorCode_1
          {
            get
            {
              return this.RetrievalErrorCode_1_421;
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 FirstISN_4_152
          {
            get
            {
              return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U009DU0003);
            }
          }

          [Description("First ISN to be retrieved in a multiple input message retrieval.")]
          public Tag152 Tag152_FirstISN_4
          {
            get
            {
              return this.FirstISN_4_152;
            }
          }

          internal RetrievalErrorCode_1_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }

        public class RetrievalErrorCode_2_SequenceClass : SwiftTagSequence
        {
          internal override SwiftDefinitionElement Definition
          {
            get
            {
              return (SwiftDefinitionElement) MT021.U009FU0003;
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 RetrievalErrorCode_2_421
          {
            get
            {
              return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0001U0004);
            }
          }

          [Description("Reason why the retrieval request cannot be satisfied")]
          public Tag421 Tag421_RetrievalErrorCode_2
          {
            get
            {
              return this.RetrievalErrorCode_2_421;
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 FirstOSN_4_153
          {
            get
            {
              return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0003U0004);
            }
          }

          [Description("First OSN to be retrieved in a multiple output message retrieval")]
          public Tag153 Tag153_FirstOSN_4
          {
            get
            {
              return this.FirstOSN_4_153;
            }
          }

          internal RetrievalErrorCode_2_SequenceClass(SwiftElement parent, int index, bool createTags)
            : base(parent, index, createTags)
          {
          }
        }
      }
    }

    public class InformationOnRetrievedMessages2Class : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT021.U0005U0004;
        }
      }

      [Description("Reason why the retrieval request cannot be satisfied")]
      public Tag421 RetrievalErrorCode_421
      {
        get
        {
          return new Tag421((SwiftElement) this, 0, (SwiftDefinitionElement) MT021.U0006U0004);
        }
      }

      [Description("Reason why the retrieval request cannot be satisfied")]
      public Tag421 Tag421_RetrievalErrorCode
      {
        get
        {
          return this.RetrievalErrorCode_421;
        }
      }

      internal InformationOnRetrievedMessages2Class(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }
  }
}
